package org.eirudy.shareimage.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.eirudy.shareimage.model.dto.space.SpaceAddRequest;
import org.eirudy.shareimage.model.dto.space.SpaceQueryRequest;
import org.eirudy.shareimage.model.dto.space.analyze.*;
import org.eirudy.shareimage.model.entity.Picture;
import org.eirudy.shareimage.model.entity.Space;
import org.eirudy.shareimage.model.entity.User;
import org.eirudy.shareimage.model.vo.SpaceUserAnalyzeResponse;
import org.eirudy.shareimage.model.vo.SpaceVO;
import org.eirudy.shareimage.model.vo.space.analyze.SpaceCategoryAnalyzeResponse;
import org.eirudy.shareimage.model.vo.space.analyze.SpaceSizeAnalyzeResponse;
import org.eirudy.shareimage.model.vo.space.analyze.SpaceTagAnalyzeResponse;
import org.eirudy.shareimage.model.vo.space.analyze.SpaceUsageAnalyzeResponse;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
* @author Eirudy
* @description 针对表【space(空间)】的分析Service
* @createDate 2025-05-27 15:36:43
*/
public interface SpaceAnalyzeService extends IService<Space> {


    /**
     *  获取空间使用情况分析
     * @param spaceUsageAnalyzeRequest
     * @param loginUser
     * @return
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyzeResponse(SpaceUsageAnalyzeRequest spaceUsageAnalyzeRequest,User loginUser);

    /**
     *  获取空间分类情况分析
     */
    List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyzeResponse(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, User loginUser);

    /**
     *  获取空间标签分析
     */
    List<SpaceTagAnalyzeResponse> getSpaceTagAnalyzeResponse(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest, User loginUser);


    List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyzeResponse(SpaceSizeAnalyzeRequest spaceSizeAnalyzeRequest, User loginUser);


    /**
     *  用户行为分析
     */
    List<SpaceUserAnalyzeResponse> getSpaceUserAnalyzeResponse(SpaceUserAnalyzeRequest spaceUserAnalyzeRequest, User loginUser);

    /**
     *  获得排名前十的空间
     */
    List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest,User loginUser);
}
